#ifndef MODEL_YMODEM_H
#define MODEL_YMODEM_H


#include "main.h"
#include "usart.h"
#include "stdio.h"
#include "driver_tool.h"

#define	SOH	0x01
#define STX	0x02
#define ACK	0x06
#define NAK	0x15
#define EOT	0x04
#define C1	0x43

typedef int32 (*storage_data_cb)(uint32 start_address, uint8 *buffer, uint32 buf_len);


/*******************************************
* @function: 	执行Ymodel协议的运行主要流程 ，同时进行数据处理，边接收数据边处理数据
* @input:			无
* @return:		无
* @author:		田小花
* @time:			2021.4.30
*******************************************/
void Ymodel_process_fun(void);

int32 ymodem_handel(storage_data_cb callback, uint32 start_address);

#endif
